home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 201-225 / disk_222 / plplot / src / source.zoo / plbox3.c < prev    next >
C/C++ Source or Header  |  1989-05-15  |  4KB  |  113 lines

  1. /* Draws axes and axis labels for 3-d plots */
  2.  
  3. #include "plplot.h"
  4.  
  5. void plbox3(xopt,xlabel,xtick,nsubx,yopt,ylabel,ytick,nsuby,
  6.             zopt,zlabel,ztick,nsubz)
  7. char *xopt, *xlabel, *yopt, *ylabel, *zopt, *zlabel;
  8. int nsubx, nsuby, nsubz;
  9. float xtick, ytick, ztick;
  10. {      
  11.       float dx,dy,tx,ty,ux,uy;
  12.       float xmin,xmax,ymin,ymax,zmin,zmax,zscale;
  13.       float cxx,cxy,cyx,cyy,cyz;
  14.       int ln;
  15.  
  16.       int level;
  17.       glev(&level);
  18.       if (level < 3) fatal("Please set up window before calling PLBOX3");
  19.  
  20.       gw3wc(&cxx,&cxy,&cyx,&cyy,&cyz);
  21.       gdom(&xmin,&xmax,&ymin,&ymax);
  22.       grange(&zscale,&zmin,&zmax);
  23.  
  24.       if (cxx >= 0.0 && cxy <= 0.0) {
  25.         ln=strpos(xopt,'N') != -1 || strpos(xopt,'n') != -1;
  26.         tx=w3wcx(xmin,ymin,zmin);
  27.         ty=w3wcy(xmin,ymin,zmin);
  28.         ux=w3wcx(xmax,ymin,zmin);
  29.         uy=w3wcy(xmax,ymin,zmin);
  30.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmin,xmax,xtick,nsubx,0);
  31.         dx = ux - tx;
  32.         dy = uy - ty;
  33.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  34.              w3wcy(xmax,ymin,zmax),zmin,zmax,ztick,nsubz);
  35.         tx=w3wcx(xmin,ymax,zmin);
  36.         ty=w3wcy(xmin,ymax,zmin);
  37.         ux=w3wcx(xmin,ymin,zmin);
  38.         uy=w3wcy(xmin,ymin,zmin);
  39.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymax,ymin,ytick,nsuby,ln);
  40.         dx = ux - tx;
  41.         dy = uy - ty;
  42.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  43.              w3wcy(xmin,ymax,zmax),zmin,zmax,ztick,nsubz);
  44.  
  45.       }
  46.       else if (cxx <= 0.0 && cxy <= 0.0) {
  47.         ln=strpos(yopt,'N') != -1 || strpos(yopt,'n') != -1;
  48.         tx=w3wcx(xmin,ymax,zmin);
  49.         ty=w3wcy(xmin,ymax,zmin);
  50.         ux=w3wcx(xmin,ymin,zmin);
  51.         uy=w3wcy(xmin,ymin,zmin);
  52.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymax,ymin,ytick,nsuby,0);
  53.         dx = ux - tx;
  54.         dy = uy - ty;
  55.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  56.              w3wcy(xmin,ymin,zmax),zmin,zmax,ztick,nsubz);
  57.         tx=w3wcx(xmax,ymax,zmin);
  58.         ty=w3wcy(xmax,ymax,zmin);
  59.         ux=w3wcx(xmin,ymax,zmin);
  60.         uy=w3wcy(xmin,ymax,zmin);
  61.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmax,xmin,xtick,nsubx,ln);
  62.         dx = ux - tx;
  63.         dy = uy - ty;
  64.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  65.              w3wcy(xmax,ymax,zmax),zmin,zmax,ztick,nsubz);
  66.  
  67.       }
  68.       else if (cxx <= 0.0 && cxy >= 0.0) {
  69.         ln=strpos(xopt,'N') != -1 || strpos(xopt,'n') != -1;
  70.         tx=w3wcx(xmax,ymax,zmin);
  71.         ty=w3wcy(xmax,ymax,zmin);
  72.         ux=w3wcx(xmin,ymax,zmin);
  73.         uy=w3wcy(xmin,ymax,zmin);
  74.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmax,xmin,xtick,nsubx,0);
  75.         dx = ux - tx;
  76.         dy = uy - ty;
  77.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  78.              w3wcy(xmin,ymax,zmax),zmin,zmax,ztick,nsubz);
  79.         tx=w3wcx(xmax,ymin,zmin);
  80.         ty=w3wcy(xmax,ymin,zmin);
  81.         ux=w3wcx(xmax,ymax,zmin);
  82.         uy=w3wcy(xmax,ymax,zmin);
  83.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymin,ymax,ytick,nsuby,ln);
  84.         dx = ux - tx;
  85.         dy = uy - ty;
  86.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  87.              w3wcy(xmax,ymin,zmax),zmin,zmax,ztick,nsubz);
  88.       }
  89.       else if (cxx >= 0.0 && cxy >= 0.0) {
  90.         ln=strpos(yopt,'N') != -1 || strpos(yopt,'n') != -1;
  91.         tx=w3wcx(xmax,ymin,zmin);
  92.         ty=w3wcy(xmax,ymin,zmin);
  93.         ux=w3wcx(xmax,ymax,zmin);
  94.         uy=w3wcy(xmax,ymax,zmin);
  95.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymin,ymax,ytick,nsuby,0);
  96.         dx = ux - tx;
  97.         dy = uy - ty;
  98.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  99.              w3wcy(xmax,ymax,zmax),zmin,zmax,ztick,nsubz);
  100.         tx=w3wcx(xmin,ymin,zmin);
  101.         ty=w3wcy(xmin,ymin,zmin);
  102.         ux=w3wcx(xmax,ymin,zmin);
  103.         uy=w3wcy(xmax,ymin,zmin);
  104.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmin,xmax,xtick,nsubx,ln);
  105.         dx = ux - tx;
  106.         dy = uy - ty;
  107.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  108.              w3wcy(xmin,ymin,zmax),zmin,zmax,ztick,nsubz);
  109.  
  110.       }
  111. }
  112.  
  113.